home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / DJ111M1.ZIP / go32 / stubinfo.h < prev    next >
C/C++ Source or Header  |  1993-12-15  |  3KB  |  77 lines

  1. /* This is file STUBINFO.H */
  2. /*
  3. ** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
  4. **
  5. ** This file is distributed under the terms listed in the document
  6. ** "copying.dj", available from DJ Delorie at the address above.
  7. ** A copy of "copying.dj" should accompany this file; if not, a copy
  8. ** should be available from where this file was obtained.  This file
  9. ** may not be distributed without a verbatim copy of "copying.dj".
  10. **
  11. ** This file is distributed WITHOUT ANY WARRANTY; without even the implied
  12. ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. */
  14.  
  15. #ifndef _STUBINFO_H_
  16. #define _STUBINFO_H_
  17.  
  18. typedef struct {
  19.   char magic[16];
  20.  
  21.   /* This is the length of the structure defined in stub.exe.
  22.      If it gives more or less bytes than you expect, then it's
  23.      from a different version and you need to handle that. */
  24.   word32 struct_length;
  25.  
  26.   /* the base name of the extender to use */
  27.   char go32[16];
  28.   
  29.   /* The version of go32.exe this program expects.  The word8's encode
  30.      the version as follows:
  31.        .b[0] - release number (fcs always zero)
  32.        .b[1] - release type 'a'=alpha, 'b'=beta, 'f'=fcs, 'm'=maintainance
  33.            set to 's' for special versions - exact match required, use
  34.            release number as special type indicator.
  35.        .b[2] - minor version number
  36.        .b[3] - major version number
  37.      Example: for the third beta of 1.11, the entries would be
  38.      {3, 'b', 11, 1}.  The order is chosen such that the _w value
  39.      will monotonically increase with each release. */
  40.   word8 required_go32_version[4];
  41. #define required_go32_version_w(x) (*(word32 *)(x.required_go32_version))
  42.  
  43.   /* the minimum amount of stack space required */
  44.   word32 min_stack;
  45.  
  46.   /* The maximum amount of virtual memory to keep around
  47.      when this program spawns another program */
  48.   word32 max_keep_on_spawn;
  49.  
  50.   /* this replaces the base of the file name we are for paging_set_file
  51.      if [0] is non-zero */
  52.   char actual_file_to_run[15];
  53.   
  54.   /* if set, disable globbing (the program will glob for us) */
  55.   word8 enable_globbing;
  56.   
  57.   /* amount of conventional memory to leave available to DOS allocation calls */
  58.   word32 free_conventional_memory;
  59. } StubInfo;
  60.  
  61. #define STUB_INFO_MAGIC "StubInfoMagic!!"
  62.  
  63. #define GO32_MAJOR_VERSION      1
  64. #define GO32_MINOR_VERSION      11
  65. #define GO32_RELEASE_TYPE       "maint"
  66. #define GO32_RELEASE_TYPE_C     'm'
  67. #define GO32_RELEASE_NUMBER     1
  68.  
  69. /* 1.08.fcs0 */
  70. #define GO32_LOWEST_COMPATIBLE_VERSION 0x01086600L
  71.  
  72. extern StubInfo stub_info;
  73.  
  74. extern char *char2rtype(word8 rtype, word8 relnum); /* go32.exe only */
  75.  
  76. #endif
  77.